package com.john.http.core.convert;

import org.apache.commons.lang3.StringUtils;

/**
 * 〈一句话功能简述〉<br/>
 * 〈字符串拆分转换器〉
 *
 * @author jiangguangtao on 2016/5/20.
 */
public class SplitValueConverter implements IValueConverter {
    private String splitter;
    private int valueIndex = 0;

    /**
     * 以英文逗号分割字符串，并返回下标值为0的字符串
     */
    public SplitValueConverter() {
        splitter = ",";
        valueIndex = 0;
    }

    /**
     * 根据拆分字符串与返回值所在下标索引值，拆分值并返回
     *
     * @param splitter   拆分字符串 可以是正则 调用Java的拆分方法 如果有特殊字符请注意转义
     * @param valueIndex 返回值所在下标值
     */
    public SplitValueConverter(String splitter, int valueIndex) {
        this.splitter = splitter;
        this.valueIndex = valueIndex;
    }


    @Override
    public String getName() {
        return "拆分值转换";
    }

    @Override
    public Object convert(String str) {
        if (StringUtils.isBlank(str)) {
            return null;
        }

        String arr[] = str.split(splitter);
        if (arr.length > 0 && arr.length > valueIndex) {
            return arr[valueIndex];
        }

        return null;
    }
}
